package com.example.cmh.mapper;

import com.example.cmh.pojo.Department;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 部门数据访问接口
 */
@Mapper
public interface DepartmentMapper {
    
    /**
     * 分页条件搜索部门信息
     * @param departmentName 部门名称
     * @param departmentStatus 部门状态
     * @return 部门列表
     */
    List<Department> getDepartments(String departmentName, String departmentStatus);
    
    /**
     * 获取符合条件的部门总数
     * @param departmentName 部门名称
     * @param departmentStatus 部门状态
     * @return 总数
     */
    Integer getDepartmentsCount(String departmentName, String departmentStatus);
    
    /**
     * 根据departmentId查找对应的department
     * @param departmentId 部门ID
     * @return 部门信息
     */
    Department getDepartmentsById(Integer departmentId);
    
    /**
     * 新增部门
     * @param department 部门信息
     */
    void addDepartments(Department department);
    
    /**
     * 更新部门信息
     * @param department 部门信息
     */
    void updateDepartment(Department department);
    
    /**
     * 删除部门
     * @param departmentId 部门ID
     */
    void deleteDepartment(Integer departmentId);
    
    /**
     * 根据部门名称删除部门
     * @param departmentName 部门名称
     */
    void deleteDepartmentByName(String departmentName);
    
    /**
     * 根据部门名称获取部门
     */
    Department getDepartmentByName(@Param("departmentName") String departmentName);
} 